[![builds.sr.ht status](https://builds.sr.ht/~whereiseveryone/guixrus/commits/.build.yml.svg)](https://builds.sr.ht/~whereiseveryone/guixrus/commits/.build.yml?)

# Guix 'R Us

A [Guix channel](https://guix.gnu.org/en/manual/en/html_node/Channels.html#Channels), maintained by the [whereiseveryone](https://web.libera.chat/gamja/#whereiseveryone) community.

Project page [here](https://sr.ht/~whereiseveryone/guixrus).

## Manifesto

We hope everyone will volunteer and join us in a concerted global
effort to give free computing and society the attention, help, and chance
it needs to succeed.

We have to nurture a community that takes the responsibility and
compassion to pass down and share exceptional education and technology
to those who might push free society forward into the next generations
of the post-digital era.

The odds are against us if we don't. 

Guix is the tool for this arduous work.

## Goals

The goals of this channel are to provide packages and services that are:

* Yet to be merged [upstream](https://guix.gnu.org/).
* In alpha or beta stage of development.
* Customized to certain use-cases.
* Nightly releases.

## Contributing

Send patches to ~whereiseveryone/guixrus@lists.sr.ht

Please note that we only accept 100% [free software](https://www.fsf.org/about/what-is-free-software).

[jgart](https://git.sr.ht/~jgart/),
[unmatched-paren](https://git.sr.ht/~unmatched-paren), and/or
[raghavgururajan](https://git.sr.ht/~raghavgururajan/) can review patches
and merge them.

[Reach out](https://web.libera.chat/gamja/#whereiseveryone) if you would
like to help us with reviewing code.

Note: Make sure you use `#:prefix rus:` when importing `(guixrus ...)` modules,
to avoid name collisions.

You can subscribe to the mailing list by sending an email to ~whereiseveryone/list+subscribe@lists.sr.ht

### Upstreaming

If you see anything in guixrus that you would like to upstream feel free
to send it to guix-patches@gnu.org

We just ask that you attribute any co-authors
following guidelines for [submitting patches
](https://guix.gnu.org/manual/en/html_node/Submitting-Patches.html)
to GNU Guix.

To see packages that have been marked for upstreaming use the following `todo.sr.ht` label:
[label:upstream](https://todo.sr.ht/~whereiseveryone/guixrus?search=label%3Aupstream).

### Using `git format-patch` and `git send-email`

It is recommended to use `git` to create and send patches.
[Read more](https://git-send-email.io/).

Common git arguments associated with guixrus are in `.gitconfig` file. You can
make changes suggested in `.gitconfig` to your local `.git/config` like below.

```shell
$ git config --local include.path ../.gitconfig
```

## Usage

### Without Subscribing

Clone this repository and load its modules using Guix's [load-path](https://guix.gnu.org/manual/en/html_node/Package-Modules.html).

For example, to install `guixrus-st`, you could do the following:

``` shell
git clone https://git.sr.ht/~whereiseveryone/guixrus
cd guixrus
guix install -L . st-guixrus
```

### Subscribing

Add this channel to your list of guix channels located at `$HOME/.config/guix/channels.scm`.

``` scheme
(append
 (list
  (channel
   (name 'guixrus)
   (url "https://git.sr.ht/~whereiseveryone/guixrus")
   (introduction
    (make-channel-introduction
     "7c67c3a9f299517bfc4ce8235628657898dd26b2"
     (openpgp-fingerprint
      "CD2D 5EAA A98C CB37 DA91  D6B0 5F58 1664 7F8B E551")))))
 %default-channels)
```

Run `guix pull` to sync the channel's modules with your store.

#### With Guix Home

If using `guix home` add the following to your config:

```
(simple-service 'guixrus-service
                home-channels-service-type
                (list
                 (channel
                  (name 'guixrus)
                  (url "https://git.sr.ht/~whereiseveryone/guixrus"))))
```

## Communication

Discussion regarding this channel happens at `#whereiseveryone` on the Libera IRC network.

* IRC users can connect to `irc.libera.chat/#whereiseveryone`
* XMPP users can use the IRC bridge at `#whereiseveryone%irc.libera.chat@irc.cheogram.com`
* Matrix users can use the IRC bridge at `#libera_#whereiseveryone:matrix.org`

